2012年03月05日
川俣晶の縁側ソフトウェア技術雑記 total 3424 count

開いた口がふさがらないこと・気付かないうちにVS11の波に乗っていた

Written By: 川俣 晶連絡先

ScripSharp遊び・DOMノードを追加するで書いたJavsScriptにトランスレートされるC#コードがこれ」

                Element p = Document.CreateElement("p");

                p.TextContent = "new para element";

                Document.Body.AppendChild(p);

「それで?」

「しかし、世間はVS11βで騒がしい」

「そうだね」

「なので、VS11も少し使ってみた。JavaScriptのMetroプロジェクトも作成できるようになったので、簡単なテストを書いてみた」

「それで?」

「動いた要点がこれ」

                var x = document.querySelector("#idx");

                var y = document.createTextNode("hello");

                x.appendChild(y);

「あれ? どことなく似てるぞ」

「書かれた内容は違うが、documentオブジェクトからノードをクリエイトしてアペンドで追加するスタイルは同じ」

「えー」

「我が友(客)を守り、我が道を行く、と思って試行錯誤して出た結果と、最新のトレンドが一致したのだからね。我が道は間違って無かったと納得したよ」

「でも、MSそのものが既に傍流じゃない」

「ノンノン。HTML5の潮流は、AppleもGoogleも巻き込んだ全体的な流れだよ。MS単体で動いてる流れじゃない」

「えー」

時代は巻き戻った §

「もう1つ興味深い点がある」

「それはなんだい?」

「VS11でJavaScriptプロジェクトを作成させたらこんなコードを含むコードを生成しおった」

  • "use strict";

「何か意味があるの?」

「ECMA-262 5.1のstrictモードの指定だ」

「それって何?」

「たぶんおおざっぱに言えば昔のVisual BasicのOption Explicit Onみたいなものだな」

「変数宣言の強制?」

「他にも機能がある」

「へー」

「しかし、『スペルミス1文字が分からずバグが見つからない』なんていうアホらしい問題が起きる昔のBASIC言語と同じ欠陥を持ったJavaScriptが、同じような宣言で乗り切ろうとするなど、まさに時代は繰り返しておる」

「はははは。でもきっと当事者は画期的な新機能だと思って胸を張ってるよ」

「やむを得ない。VB1.0が出た頃の当時を知る人はMS社内にすらほとんど残ってないだろう」

「ぎゃふん」

まとめ §

「というわけで、まとめ」

「うん」

「Metroなんてやめだ、と思ってHTML5道に邁進した結果、いつの間にかMetroアプリのソースもHTML5ベースでそっくりに書けるようになっていた。あれまあ」

「離れたつもりで合流しているわけだね」

「そうらしい」

「じゃあ君としてはどうするの?」

「昔、欠陥持ちのVisual BasicのソースをいつもOption Explicitから書き始めたように、欠陥持ちのJavaScriptも"use strict"で書き始めるかな」

「欠陥持ちでもJavaScriptを使うんだね?」

「だってしょうがないだろ? 現にお客さまの皆々様に普及している環境を1つに統合する方策はそれしかないんだから」

「それは理想より重要?」

「まず動くこと。話はそれからだ」